package org.agile2soft.nexoma.expedient.model;


import java.util.*;

import org.agile2soft.nexoma.expedient.entities.Document;
import org.agile2soft.nexoma.expedient.entities.ExpedientPhase;
import org.agile2soft.nexoma.expedient.entities.ExpedientType;
import org.agile2soft.nexoma.expedient.entities.ExpedientTypePhase;

public interface IAdminExpedientsDAO {


    //Document
    public void addDocumentation(Document doc) ;
    public void updateDocumentation(Document doc) ;

    //ExpedientPhase
    public void addPhase(ExpedientPhase phase) ;


    //ExpedientType
    public void addType(ExpedientType type, ArrayList<ExpedientTypePhase> type_phases) ;


    public void updatePhase(ExpedientPhase phase) ;
    public void updateType(ExpedientType type) ;

    public Document getDocumentation(String doc_id) ;

    public ExpedientPhase getPhase(String phase_id) ;

    public ExpedientType getType(String type_id);

    public ArrayList getAllDocumentations();

    public ArrayList getAllPhases();

    public ArrayList getAllTypes();

    public ArrayList getTypesForConsultingByProfile(String profile_id);

    public ArrayList getTypesForNewExpedientByProfile(String profile_id);

    public ArrayList getPhasesByType(String type_id);

    public void deleteDocumentation(String doc_id);

    public void deletePhase(String phase_id);

    public void deleteType(String type_id);

    public boolean existTypeName(String name);

    public Hashtable getTypePhases(String type_id);

}

